import { IPSModelObject } from '../ipsmodel-object';
import { IPSDEField } from '../dataentity/defield/ipsdefield';

/**
 *
 * @export
 * @interface IPSBILevel
 */
export interface IPSBILevel extends IPSModelObject {
  /**
   * 层级标记
   * @type {string}
   */
  levelTag: string;

  /**
   * 层级标记2
   * @type {string}
   */
  levelTag2: string;

  /**
   * 层级类型
   * @description 值模式 [分析维度体系层级类型] {COMMON：常规、 TIME_YEARS：时间（年）、 TIME_HALFYEARS：时间（半年）、 TIME_QUARTERS：时间（季度）、 TIME_MONTHS：时间（月份）、 TIME_WEEKS：时间（周）、 TIME_DAYS：时间（天）、 TIME_HOURS：时间（小时）、 TIME_MINUTES：时间（分钟） }
   * @type {( string | 'COMMON' | 'TIME_YEARS' | 'TIME_HALFYEARS' | 'TIME_QUARTERS' | 'TIME_MONTHS' | 'TIME_WEEKS' | 'TIME_DAYS' | 'TIME_HOURS' | 'TIME_MINUTES')}
   */
  levelType: string | 'COMMON' | 'TIME_YEARS' | 'TIME_HALFYEARS' | 'TIME_QUARTERS' | 'TIME_MONTHS' | 'TIME_WEEKS' | 'TIME_DAYS' | 'TIME_HOURS' | 'TIME_MINUTES';

  /**
   * 显示文本属性
   *
   * @type {IPSDEField}
   */
  getTextPSDEField(): IPSDEField | null;

  /**
   * 显示文本属性
   *
   * @type {IPSDEField}
   */
  get textPSDEField(): IPSDEField | null;

  /**
   * 显示文本属性（必须存在）
   *
   * @type {IPSDEField}
   */
  getTextPSDEFieldMust(): IPSDEField;

  /**
   * 值属性
   *
   * @type {IPSDEField}
   */
  getValuePSDEField(): IPSDEField | null;

  /**
   * 值属性
   *
   * @type {IPSDEField}
   */
  get valuePSDEField(): IPSDEField | null;

  /**
   * 值属性（必须存在）
   *
   * @type {IPSDEField}
   */
  getValuePSDEFieldMust(): IPSDEField;
}
